// axios-upload-adapter.js
import axios from "axios";
import { getToken } from "@/utils/auth";

class AxiosUploadAdapter {
  constructor(loader,options) {
    // 这里的 loader 是 CKEditor 5 提供的文件加载器
    // 你可以在这里添加任何配置，例如 headers、baseURL 等
    // 但在这个例子中，我们保持简单
    this.loader = loader;
    this.options = options
  }

  // 实现 upload 方法
  upload() {
    return new Promise(async (resolve, reject) => {
      const file = await this.loader.file;
      const formData = new FormData();

      formData.append("file", file);

      axios
        .post("http://www.wcsoft.net/prod-api/common/upload", formData, {
          headers: {
            "Content-Type": "multipart/form-data",
            Authorization: "Bearer " + getToken(),
            // 可能需要其他 headers，如认证信息
          },
        })
        .then((response) => {
          // 假设服务器返回一个包含 URL 的对象
          if (response.data && response.data.fileName) {
            resolve({
              default: 'http://www.wcsoft.net/prod-api'+response.data.fileName,
            });
          } else {
            reject(new Error("无法获取上传文件的 URL"));
          }
        })
        .catch((error) => {
          reject(error);
        });
    });
  }
}

export default AxiosUploadAdapter;
